package com.chentf.creational.Singleton.code;

/**
 * 枚举：
 * 枚举的方式是比较少见的一种实现方式，但是看上面的代码实现，却更简洁清晰。并且她还自动支持序列化机制，绝对防止多次实例化
 */
public enum SingletonEnum {
    INSTANCE;

    SingletonEnum(){
        System.out.println("构造函数执行");
    }

    public String getName(){
        return "singleEnum";
    }

    public static void main(String[] args){
        //通过 SingleEnum.INSTANCE 来访问实例。而且创建枚举默认就是线程安全的，并且还能防止反序列化导致重新创建新的对象。
        SingletonEnum singletonEnum = SingletonEnum.INSTANCE;
        System.out.println(singletonEnum.getName());
    }


}
